import time

from selenium import webdriver
from selenium.webdriver.common.by import By

web = webdriver.Edge()
web.implicitly_wait(10)

web.get('https://www.byhy.net/cdn2/files/selenium/sample3.html')

# 点击打开新窗口的链接
link = web.find_element(By.TAG_NAME, "a")
link.click()

# 同样的，如果我们在新窗口操作结束后，还要回到原来的窗口可以事先保存该老窗口的句柄,使用如下方法
#
#  mainWindow变量保存当前窗口的句柄
mainWindow = web.current_window_handle
# 切换到新窗口操作完后，就可以直接像下面这样，将driver对应的对象返回到原来的窗口


# WebDriver对象有window_handles 属性，这是一个列表对象， 里面包括了当前浏览器里面所有的窗口句柄。
for handle in web.window_handles:
    # 先切换到该窗口
    web.switch_to.window(handle)
    # 得到该窗口的标题栏字符串，判断是不是我们要操作的那个窗口
    if '必应' in web.title:
        # 如果是，那么这时候WebDriver对象就是对应的该该窗口，正好，跳出循环，
        break
# web.title属性是当前窗口的标题栏 文本

web.find_element(By.ID, "sb_form_q").send_keys("白月黑羽")
time.sleep(5)

# 通过前面保存的老窗口的句柄，自己切换到老窗口
web.switch_to.window(mainWindow)
web.find_element(By.ID, "outerbutton").click()
time.sleep(5)

web.quit()
